package com.jinlong.untils;

import java.security.MessageDigest;

public class MD5Util {
    public final static String MD5(String s){
        char hexDigits[] = {'0','1','2','3','4','5','6','7','8','A','B','C','D','E','F',
                'G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X',
                'Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p',
                'q','r','s','t','u','v','w','x','y','z'};
        try{
            byte[]btInput = s.getBytes();
            //获取MD5摘要算法的MessageDigest对象
            MessageDigest messageDigest = MessageDigest.getInstance("MD5");
            //使用指定的字节更新摘要
            messageDigest.update(btInput);
            //获取密文
            byte[] md= messageDigest.digest();
            //把密文转换成十六进制的字符串形式
            int j = md.length;
            char str[] = new char[j * 2];
            int k =0;
            for(int i = 0;i<j;i++){
                byte byte0 = md[i];
                str[k++] = hexDigits[byte0 >>> 4 & 0xf];
                str[k++] = hexDigits[byte0 & 0xf];
            }
            return new String(str);
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }

}
